package com.myapp.hibernate.model;
// Generated 25-jun-2013 13:42:51 by Hibernate Tools 3.2.1.GA

import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;


public class Usuario implements java.io.Serializable {

    private Integer idUsuario;
    private String nombre;
    private String apellidos;
    private String email;
    private String pass;
    private Integer isAdmin;

    public Usuario() {
    }

    public Usuario(String email, String pass) {
        this.email = email;
        this.pass = pass;
    }

    public Usuario(String nombre, String apellidos, String email, String pass, Integer isAdmin) {
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.email = email;
        this.pass = pass;
        this.isAdmin = isAdmin;
    }

    public Integer getIdUsuario() {
        return this.idUsuario;
    }

    public void setIdUsuario(Integer idUsuario) {
        this.idUsuario = idUsuario;
    }

    public String getNombre() {
        return this.nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getApellidos() {
        return this.apellidos;
    }

    public void setApellidos(String apellidos) {
        this.apellidos = apellidos;
    }

    public String getEmail() {
        return this.email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPass() {
        return this.pass;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }

    public Integer getIsAdmin() {
        return this.isAdmin;
    }

    public void setIsAdmin(Integer isAdmin) {
        this.isAdmin = isAdmin;
    }

    public void enviaEmail() throws MessagingException {
        // Propiedades de la conexión
        Properties props = new Properties();
        props.setProperty("mail.smtp.host", "smtp.gmail.com");
        props.setProperty("mail.smtp.starttls.enable", "true");
        props.setProperty("mail.smtp.port", "587");
        props.setProperty("mail.smtp.user", "betboxingupo@gmail.com");
        props.setProperty("mail.smtp.auth", "true");

        // Preparamos la sesion
        Session session = Session.getDefaultInstance(props);

        // Construimos el mensaje que se va a mandar
        String mensaje = "";
        mensaje += "Enhorabuena! " + this.getNombre() + " " + this.getApellidos() + ", su cuenta se ha creado correctamente.<br /><br /> Ya puede entrar en BetBoxing usando su email y contraseña"
                + ". Los datos son los siguientes:<br /><br />";
        mensaje += "<center><table border='1'>";
        mensaje += "<tr><th>Nombre</th><td>" + this.getNombre() + "</td></tr>";
        mensaje += "<tr><th>Apellidos</th><td>" + this.getApellidos() + "</td></tr>";
        mensaje += "<tr><th>Email</th><td>" + this.getEmail() + "</td></tr>";
        mensaje += "<tr><th>Contraseña</th><td>" + this.getPass() + "</td></tr>";
        mensaje += "</table></center>";        
        mensaje += "<br /><br />&iexcl;Muchas gracias por registrarse en nuestra aplicacion <br /><br /><br />";
        mensaje += "Mensaje enviado autom&aacute;ticamente, no conteste. <br/>";

        MimeMessage message = new MimeMessage(session);
        // Asunto del mensaje
        message.setSubject("Bienvenido a BetBoxing");
        // Emisor del mensaje        
        message.setFrom(new InternetAddress("betboxingupo@gmail.com"));
        message.setContent(mensaje, "text/html");
        // Receptor del mensaje, a quien se le va a enviar
        message.addRecipient(Message.RecipientType.TO, new InternetAddress(this.getEmail()));

        // Envia correo
        Transport t = session.getTransport("smtp");
        // t.connect( direccion de correo, contraseña)
        t.connect("betboxingupo@gmail.com", "grupo05it");
        t.sendMessage(message, message.getAllRecipients());

        // Cierre.
        t.close();
    }
}
